home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Games Galore!
/
Shareware Games Galore!.iso
/
arcade
/
gameser1
/
tictacto.bas
< prev
next >
Wrap
BASIC Source File
|
1982-03-10
|
3KB
|
69 lines
10 CLEAR ,,1024
20 GOSUB 390 'set up arrays
30 GOSUB 50
40 GOSUB 440
50 COLOR 0,2
60 CLS
70 INPUT "Please enter your name, player A.",PLANAM$(1)
80 INPUT "Enter your name, player B.",PLANAM$(2)
90 CLS
100 PRINT "Fine, "PLANAM$(1)" and "PLANAM$(2)" let's get started!"
110 PRINT "The object of this game is to place 3 x's or 3 o's in a row."
120 PRINT "The row can be horizontal, vertical or diagonal."
130 PRINT "The first one to complete a row wins the game."
140 PRINT "Press any key to start the game"
150 C$=INKEY$:IF C$="" THEN 150
160 CLS
170 LOCATE 8,25: PRINT " "+CHR$(186)+" "+CHR$(186);
180 LOCATE 9,25: PRINT " "+CHR$(186)+" "+CHR$(186);
190 LOCATE 11,25: PRINT " "+CHR$(186)+" "+CHR$(186);
200 LOCATE 12,25: PRINT " "+CHR$(186)+" "+CHR$(186);
210 LOCATE 10,24:PRINT STRING$(5,205)+CHR$(206)+STRING$(4,205)+CHR$(206)+STRING$(5,205);
220 LOCATE 13,24:PRINT STRING$(5,205)+CHR$(206)+STRING$(4,205)+CHR$(206)+STRING$(5,205);
230 LOCATE 14,25: PRINT " "+CHR$(186)+" "+CHR$(186);
240 LOCATE 15,25: PRINT " "+CHR$(186)+" "+CHR$(186);
250 LOCATE 9,27:PRINT "1":LOCATE 9,31:PRINT "2":LOCATE 9,36:PRINT "3"
260 LOCATE 12,27:PRINT "4":LOCATE 12,31:PRINT "5":LOCATE 12,36:PRINT "6"
270 LOCATE 15,27:PRINT "7":LOCATE 15,31:PRINT "8":LOCATE 15,36:PRINT "9"
280 LOCATE 17,1:PRINT PLANAM$(1)", your selection will cause an X to be placed on the grid,"
290 LOCATE 18,1:PRINT "and yours, "PLANAM$(2)", will cause an O to appear.":RETURN
300 LOCATE 9,27:PRINT C$:RETURN
310 LOCATE 9,31:PRINT C$:RETURN
320 LOCATE 9,36:PRINT C$:RETURN
330 LOCATE 12,27:PRINT C$:RETURN
340 LOCATE 12,31:PRINT C$:RETURN
350 LOCATE 12,36:PRINT C$:RETURN
360 LOCATE 15,27:PRINT C$:RETURN
370 LOCATE 15,31:PRINT C$:RETURN
380 LOCATE 15,36:PRINT C$:RETURN
390 DIM PLANAM$(2) 'numbers of players
400 DIM PLY(10) 'game array to track progress
410 DIM WC(24) 'possible winning combinations
420 DATA 1,2,3,4,5,6,7,8,9,1,4,7,1,5,9,2,5,8,3,5,7,3,6,9
430 FOR I = 1 TO 24:READ WC(I):NEXT I:RETURN 'fill in the winning array
440 FOR P = 1 TO 9
450 IF PLANUM <>1 THEN PLANUM = 1: PN$ = PLANAM$(1) ELSE PLANUM = 2:PN$ = PLANAM$(2)
460 GOSUB 510 'request player input
470 NEXT P
480 LOCATE 23,1:PRINT "Game's over, no winner! Want to try another?":GOTO 650
490 LOCATE 20,6:PRINT "Make another selection "PN$" "
500 FOR Z= 1 TO 3000:NEXT Z:LOCATE 22,6:PRINT " ":GOTO 520
510 LOCATE 20,6:PRINT "Select a number, "PN$". "
520 LOCATE 21,3:INPUT A$
530 A = VAL(A$)
540 IF A<1 OR A>9 THEN GOTO 490
550 IF PLY(A) <> 0 THEN LOCATE 22,6:PRINT "Block already taken": GOTO 490
560 IF PLANUM = 1 THEN C$="X":ELSE C$ ="O"
570 ON A GOSUB 300,310,320,330,340,350,360,370,380
580 PLY(A) = PLANUM
590 GOSUB 600:RETURN
600 FOR A1 = 0 TO 21 'who wins?
610 FOR A2 = 1 TO 3:IF PLY(WC(A1+A2))<>PLANUM THEN 670
620 NEXT A2
630 IF PLANUM =1 THEN WIN$ = PLANAM$(1): ELSE WIN$ = PLANAM$(2)
640 LOCATE 23,1:PRINT "You win " WIN$ "! Good game! Do you want to try another?"
650 INPUT YN$
660 IF YN$ = "yes" THEN 10: ELSE END
670 A1 = A1 + 2
680 NEXT A1:RETURN
game! Do you want to